|
===================================== 〔語彙分解〕的な部分一致の検索結果は以下の通りです。 ・ ー : [ちょうおん] (n) long vowel mark (usually only used in katakana)
Unix系オペレーティングシステムにおけるパイプ(pipe)、もしくはパイプライン (pipeline) とは、複数のプログラムの入出力をつなぐための仕組みの一つである。プロセス群の標準ストリームを連鎖的に相互接続するもので、あるプロセスの標準出力 (stdout) を直接別のプロセスの標準入力 (stdin) に接続する。このような接続の実装をと呼ぶ。このアイデアはUNIXやUnix系のOS以外にも、MS-DOS をはじめとする様々なOSやアプリケーションに、動作に多少の違いはあるものの受け継がれている。パイプで連結することを前提とした構成のプログラムをフィルタと呼ぶ。 がUnixシェル向けに考案したもので、パイプライン輸送からの連想で名付けられた〔Advice from Doug Mcilroy 〕。 UNIXのパイプはで中置記法の演算子と見ることができ、そのオペランドはパラメータ付きのプログラムである。プログラム的観点ではパイプ内の全プログラムは同時(並列)に動作すると見なせるが、構文的には左から順に実行されると見ることができる。パイプは一種の写像の合成である。関数型プログラミングで、ある関数の出力を別の関数の引数(入力)として渡すのに似ている。 == シェルからの使用 == 以下が典型的なパイプの利用例である。|(バーティカルバー) はシェルにパイプを指示する記号である。 grep 札幌市 Address.txt | a2ps | lpr これは # ファイル ''Address.txt'' から "札幌市" が含まれる行を出力し # その出力を入力として受け取って ''a2ps'' コマンドを用いて整形し # その出力を印刷する といった処理を指示している。 パイプを使用する方法に対して、中間ファイルを利用する方法 grep 札幌市 Address.txt > sapporo.txt a2ps < sapporo.txt > print.ps lpr < print.ps もあるが、パイプを利用する方法に比べ記述が冗長になるだけでなく、一般に動作が遅くなる。なぜなら、このように中間ファイルをつくる場合1 つ目のプログラムがすべてのデータを処理し終えるのを待って 2 つ目のプログラムが動かし、さらに2 つ目のプログラムが終了して初めて 3 つめのプログラムが動かす必要がある。しかしパイプを使えば、 3 つのプログラムをマルチタスクにより同時に動かし、I/Oなど時間がかかる処理の待ち時間を有効に使うことができる。さらに、逐次処理を行うために、データのサイズが大きい場合でも記憶領域を消費しない利点もある。また、データの受け渡しがメモリ上で行われるため、その点でも高速な処理が期待できる。 ただし、MS-DOS におけるパイプは、シングルタスク OS という制約のためパイプの動作は中間ファイルによってエミュレートされており、これらの利点はなく単なる略記法となっている。 UNIX の設計思想である、それぞれの役割に特化したプログラムを組み合わせ、複雑な機能を実現する(ツールキットアプローチ、分割統治法)として、パイプはその成功例であり、UNIX を利用する大きな魅力のひとつとなる。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「パイプ (コンピュータ)」の詳細全文を読む スポンサード リンク
|